iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0
自我挑戰組

JavaScript亂記系列 第 1

var、let、const 差異

  • 分享至 

  • xImage
  •  

如果不宣告變數會污染全域,多人開發起來會變得很雜亂

例 1

例 2

function fnB的a不會影響到全域的a
答:'local',1 '全',0

宣告後a將變成區域變數(範圍為fn()函式內)

  1. 屬性可以被刪除(沒宣告就會變成屬性)
  2. 變數無法被刪除(有宣告的)
  3. 函式可以向外查找

for迴圈中

使用var 跟使用 let差異

for(var i = 0; i < 10; i++){
    console.log(i);
}
console.log(i); //❶

❶ 取得到值 10

for(let i = 0; i < 10; i++){
    console.log(i);
}
console.log(i); //❶

❶ 取不到值

重點

var

只有在function中宣告時會使變數限定在函式區域內(區域變數)
其他則污染全域(window)

let

只要有{}就會使let變成區域變數
for迴圈預設會帶let比較不出錯

for (let i = 0; i < 10; i++) {
    
}

const

就是不能修改的let

差異

  1. window中找不到 let b = 1;
var a = 0;
let b = 1;
console.log(window);

  1. 會出錯 但var不會(出錯率較高)
let a = 0;
let a = 1;
console.log(a);
  1. let不允許在宣告變數前先取得值 (暫時性死區)
function fn(a){
    console.log(a);
    
    let a = 2;
    console.log(a);
}
fn(1);

  1. const雖不能修改但有一個物件傳參考的特性

下一篇
暫時性死區 TDZ
系列文
JavaScript亂記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言